package com.example.demo.controller.game;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

// 一个二维向量类

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Vec {
    public double x,y;
    public Vec add(Vec vec){
        return new Vec(x+vec.x,y+vec.y);
    }
    public Vec sub(Vec vec){
        return new Vec(x-vec.x,y-vec.y);
    }
    public double doc(Vec vec){
        return x*vec.x + y*vec.y;
    }
    public Vec mul(double a){
        return new Vec(x*a , y*a);
    }
    public double cross(Vec vec){
        return x*vec.y - y*vec.x;
    }
    public double len(){
        return Math.sqrt(x*x+y*y);
    }
    public double dis(Vec vec){
        return this.sub(vec).len();
    }
    public Vec nomal(){
        double d = this.len();
        return new Vec(x/d,y/d);
    }
}
